#pragma once

#include "board.h"

#ifndef BOARD_H
#define BOARD_H

// Struktura, do ktere se uklada tah hrace
struct Move {
public:
	// hrac, ktery hraje
	CheckerColor Player;

	// pole odkud hrac tahne
	int From;

	// pole kam hrac tahne - umoznuje ulozit i meziskoky pri vicenasobnem brani
	// usnadni pripadnou vizualizaci
	// konecna pozice figury je ulozena v To[ToCount -1]
	int To[12];
	int ToCount;

	// zajate souperovy kameny
	int Captured[12];
	int CapturedCount;

	// kopie hraci plochy pred tahem
	Board BeforeMove;
	
	// hodnoceni tahu (pozice, ktera vznikla po tahu)
	int FitnessComponents[6];
	int FitnessTotal;

	Move();

	// rychly vymaz dat - pouze je zneplatni
	void Clear();
	// vymaze vsechna data
	void ClearComplete();

	static bool Equal(Move* move1, Move* move2);
};

#endif